/**
 * Project Untitled
 */


#ifndef _RESOURSEMANAGER_H
#define _RESOURSEMANAGER_H
#include <map>
#include <vector>
#include <memory>
#include <QOpenGLTexture>
#include <QString>
#include <QMatrix4x4>
#include "EnumArray.h"
#include "assimp/Importer.hpp"
enum class CardInfo :uint8_t{Id, Max};
enum class MythInfo :uint8_t{Id, Max};

class ResourceManager {
protected: 
    
/**
 * @param model_path
 */
void loadModel2QMat(QString model_path);
    
/**
 * @param tex_path
 */
void loadTextures(QString tex_path);
    
/**
 * @param json_path
 */
void loadJson(QString json_path);
private: 
    std::map<QString, std::vector<std::shared_ptr<QOpenGLTexture>>> textures;
    std::map<QString, QMatrix4x4> models;
    //std::map<QString, aiAnimation*> animations; // TODO: add animation support
    //std::vector<EnumArray<CardInfo, QString>> cards_info;
    //std::vector<EnumArray<MythInfo, QString>> myth_info;
};

#endif //_RESOURSEMANAGER_H